package com.lf.mykotlin.datatype

/**
 * @date: 2023/4/27
 *
 * 数据类型
 */
class MyKotlinDataType {

    /*
        1. 数字
                Byte=> 字节 => 8位
                Short => 短整型 => 16位
                Int => 整型 => 32位
                Long => 长整型 => 64位
                Float => 浮点型 => 32位
                Double => 双精度浮点型 => 64位
        2. 布尔
            Boolean
                true
                false
        3. 字符
            Char
                Kotlin 中的 Char 不能直接和数字操作，Char 必需是单引号 ' 包含起来的。比如普通字符 '0'，'a'。
        4. 数组
        5. 字符串
            Kotlin 支持三个引号 """ 扩起来的字符串，支持多行字符串

    */


    fun main() {
        testString()
        testType()
    }

    // 字符串模版
    fun testString() {

        // 模板字符串
        val value: Int = 5;
        val str: String = "$value";
        println(str); // 输出： 5

        // $用在表达式
        val g = 3;
        val h = 2;
        val sum = "g + h = ${g + h}"
        println(sum) // 输出： g + h = 5
    }

    fun testType() {
        // 整数类型
        val byteValue: Byte = 127
        val shortValue: Short = 32767
        val intValue: Int = 2147483647
        val longValue: Long = 9223372036854775807L

        // 浮点数类型
        val floatValue: Float = 3.14F
        val doubleValue: Double = 3.141592653589793

        // 字符类型
        val charValue: Char = 'A'

        // 布尔类型
        val booleanValue: Boolean = true

        // 字符串类型
        val stringValue: String = "Hello, Kotlin!"

        // 数组类型
        val intArray: IntArray = intArrayOf(1, 2, 3, 4, 5)
        val doubleArray: DoubleArray = doubleArrayOf(1.1, 2.2, 3.3)
        val stringArray: Array<String> = arrayOf("Kotlin", "Java", "Python")

        // 打印所有值
        println("Byte Value: $byteValue")
        println("Short Value: $shortValue")
        println("Int Value: $intValue")
        println("Long Value: $longValue")
        println("Float Value: $floatValue")
        println("Double Value: $doubleValue")
        println("Char Value: $charValue")
        println("Boolean Value: $booleanValue")
        println("String Value: $stringValue")
        println("Int Array: ${intArray.joinToString()}")
        println("Double Array: ${doubleArray.joinToString()}")
        println("String Array: ${stringArray.joinToString()}")
    }
}